package com.prueba.client.interfaz.grillas;

import com.prueba.client.datosYlogica.GestorSugerencias;
import com.prueba.compartido.Sugerencia;
import com.smartgwt.client.types.Overflow;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;

public class ListGridSugerencias extends ListGrid{
	public static ListGridSugerencias getInstance(){
		if (singleton==null){
			singleton=new ListGridSugerencias();
		}
		return singleton;
	}
	static private ListGridSugerencias singleton=null;

	private ListGridSugerencias(){
		super();
	    this.setWidth100();  
	    this.setHeight100(); 
	    this.setOverflow(Overflow.AUTO);
		
        ListGridField descripcion = new ListGridField("descripcion", "Sugerencia");
        ListGridField aplicar = new ListGridField("aplicar", "Aplicar");
        
        this.setFields(descripcion,aplicar); 
        	    
	    this.setShowRecordComponents(true);          
	    this.setShowRecordComponentsByCell(true); 
	    this.setRecordComponentHeight(18);
	    this.setCanRemoveRecords(true);
	    this.setRemoveFieldTitle("Descartar");
	    
		GestorSugerencias.getInstance().setListGrid(this);
		this.setAutoFetchData(true); 
	}

	@Override
	protected Canvas createRecordComponent(final ListGridRecord record, Integer colNum) {  

	    String fieldName = this.getFieldName(colNum);  
	    if (fieldName.equals("aplicar") && record.getAttribute("tipo").equals(Sugerencia.SECCION_COMPLETA)) {  
	        IButton button = new IButton();                     
	        button.setIcon("aplicar.jpg");  
	        button.setTitle("Aplicar");  
	        
	        button.addClickHandler(new ClickHandler() {  
	            @Override
				public void onClick(ClickEvent event) {  
	                GestorSugerencias.aplicarSugerencia(record);
	            }  
	        }); 
	        return button;  
	    } else {  
	        return null;  
	    }  
	}


}